Mobile Application Analytics (MAA) is a class of software applications that enable application developers and others to monitor the performance of mobile applications, i.e., applications developed for mobile devices, during runtime. MAA applications can provide visibility into the operation of mobile applications and produce data that can help enhance and increase usage of the application, to respond to crash reports, and/or to identify new features for the application. MAA can enable developers to visualize and analyze the user's experience and to capture and investigate issues by providing real-world customer usage data to application development teams.
Accordingly, MAA enables application developers to understand the mobile application user experience across an application development life cycle, which can stimulate collaboration between business analysts, developers, operations and support in order to accelerate mobile application delivery, improve mobile application support and increase the value delivered via the mobile end-user experience.
Using MAA, business analysts can work together with developers to strengthen user loyalty by instrumenting mobile applications to collect critical business, performance and health data across languages, methodologies and platforms. IT operations teams can investigate where issues reside across the end-to-end mobile application infrastructure. IT operations teams and support teams can then feed that real-user data back to the application development teams to improve the next version of the application, which can enhance the user experience. MAA can also provide a better understanding of the usage of the application by geography, carrier, and device.
Mobile applications are typically distributed in an application package containing the elements needed to run the application, such as the program code, resources, certificates and a manifest.
An instrumenting application, such as an MAA application, can be attached to the mobile application by modifying the program code of the application to include the MAA code. This modification is referred to as “application wrapping.” When an application is wrapped, a layer of code is added to the application binary file to add features or modify behavior of the application without making changes to the internal application code. In addition to MAA functions, wrapping code may also be used to reduce the risk to an enterprise of improper or unauthorized use of an application. For example, wrapping can add security and management features to an application before it is deployed to the enterprise.
An MAA application may generate screenshots of the mobile application in order to document user activity for crash analysis, usage analysis, or other purposes. The screen shots may be provided by the MAA application to a developer, who can analyze the screen shots to determine what screens the user visited and what actions the user took on the screens. However, generating, storing and transmitting screen shots may consume an undesirably large amount of resources of a mobile computing device, including battery power, processing cycles and storage.